package com.tiancheng.trade.payment.channel.fudian.params;

import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * 富滇统一下单接口数据
 *
 * @author kellen
 * @date 2024/4/10
 */
@Getter
@Setter
public class FudianUnifiedOrderParam {

    // 验证信息
    @SerializedName("authorization")
    private FudianAuthorization authorization;
    // 通用数据
    @SerializedName("common")
    private FudianCommon common;
    // 订单数据
    @SerializedName("body")
    private Body body;

    @Getter
    @Setter
    public static class Body {
        // 商户号
        @SerializedName("merchantId")
        private String merchantId;
        // 第三方系统流水号，同一商户不允许重复
        @SerializedName("businessOrderId")
        private String businessOrderId;
        // 订单金额
        @SerializedName("totalAmount")
        private String totalAmount;
        // 支付类型（1 付款码支付 2 统一下单 8 微信公众号 9 小程序）
        @SerializedName("payType")
        private Integer payType;
        // 对应微信公众号的openId
        @SerializedName("buyerId")
        private String buyerId;
        // 付款码（付款码支付必填）
//        @SerializedName("barCode")
//        private String barCode;
        // 创建人，如下单用户
        @SerializedName("createUser")
        private String createUser;
        // 创建人名称
//        @SerializedName("createUserName")
//        private String createUserName;
//        // 顾客手机号
//        @SerializedName("customerTel")
//        private String customerTel;
        // 订单描述
//        @SerializedName("orderDesc")
//        private String orderDesc;
        // 订单来源（参照富滇对照表）
        @SerializedName("orderSource")
        private Integer orderSource;
        // 顾客证件类型
//        @SerializedName("customerIdType")
//        private Integer customerIdType;
//        // 顾客证件号
//        @SerializedName("customerIdNo")
//        private String customerIdNo;
        // 回调地址
        @SerializedName("notifyUrl")
        private String notifyUrl;
        // 子订单数据
        @SerializedName("subGeneralList")
        private List<SubStore> subGeneralList;
    }

    @Getter
    @Setter
    public static class SubStore {
        // 第三方系统流水号
        @SerializedName("businessOrderId")
        private String businessOrderId;
        // 商户id
        @SerializedName("merchantId")
        private String merchantId;
//        // 商品id
//        @SerializedName("productId")
//        private String productId;
        // 商品名称
        @SerializedName("productName")
        private String productName;
        // 单价
        @SerializedName("price")
        private String price;
        // 数量
        @SerializedName("num")
        private Integer num;
        // 总金额
        @SerializedName("totalAmount")
        private String totalAmount;
    }
}
